Conventional graphics processing systems sometimes implement techniques for clipping graphics primitives. Clipping typically refers to a set of operations that determine which portion of a graphics primitive is to be displayed with respect to a set of clipping planes. Various techniques have been developed for clipping graphics primitives. Examples of these techniques include the Cohen-Sutherland technique, the Liang-Barsky technique, the Sutherland-Hodgeman technique, and the Weiler technique. Of these techniques, the Sutherland-Hodgeman technique is perhaps the most commonly used.
Conventional clipping techniques are sometimes implemented using micro-code, such that a clipping program specifies a sequence of clipping operations to be performed. For reasons related to memory access latency, power consumption, and die area size, the clipping program is typically stored in a Read-Only Memory (“ROM”). A significant drawback of such micro-coded implementation is that, once fabricated, contents of the ROM and, thus, clipping functionality cannot be readily modified or supplemented. As a result of this drawback, the use of the ROM can impede the ability to fix bugs that might be present in the clipping program. In addition, the use of the ROM can impede the ability to add functional enhancements that might be desirable from time to time, such as to provide performance optimizations or to account for evolving performance requirements.
It is against this background that a need arose to develop the apparatus, system, and method described herein.